Run the program and see!
Definition | Translation into Java |
---|---|
Triangle( 1 ) = 1 Triangle( N ) = N + Triangle( N-1 ) |
int Triangle( int N ) { if ( N == 1 ) return 1; else return N + Triangle( N-1 ); } |
Writing a recursive Java program can be viewed as translating a math-like definition into Java code. The symbols of the definition are rearranged and some extra syntax is added to create Java code.
In this view, if the math-like definition is correct, and you correctly translate it into Java, then the program is correct. You don't have to think about how Java does the calculation. Just check that you have correctly translated the definition.
Is the following a correct translation of the math-like definition?
int Triangle( int N ) { if ( N == 1 ) return 1; else return N + Triangle( N ) - 1; }